/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */
package com.yami.shop.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.model.OfflineHandleEvent;
import com.yami.shop.bean.param.OfflineHandleEventAuditParam;

/**
 * 下线处理事件
 *
 * @author
 * @date 2019-09-20 10:44:58
 */
public interface OfflineHandleEventService extends IService<OfflineHandleEvent> {

    /**
     * 提交申请
     * @param eventId 事件id
     * @param reapplyReason 重复申请原因
     */
    void apply(Long eventId, String reapplyReason);

    /**
     * 通过事件类型和所属id获取正在处理的下线事件信息
     * @param eventType 事件类型
     * @param handleId 处理id
     * @return 事件信息
     */
    OfflineHandleEvent getProcessingEventByHandleTypeAndHandleId(Integer eventType, Long handleId);

    /**
     * 更新下线事件为申请状态
     * @param eventId 事件id
     * @param reapplyReason 重复申请原因
     */
    void updateToApply(Long eventId, String reapplyReason);

    /**
     * 审核下线事件
     * @param offlineHandleEventAuditParam 下线参数
     * @param sysUserId 系统用户id
     */
    void auditOfflineEvent(OfflineHandleEventAuditParam offlineHandleEventAuditParam, Long sysUserId);
}
